package com.server.common.security.code.anntation;

import com.server.common.security.code.enums.RequestFrequencyConditionEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 请求次数限制
 * @author LXC
 * @date 2023/2/16 20:31
 */
@Target({ ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
public @interface RequestFrequencyLimit {

    //次数  默认50次
    int limitNum() default 50;

    //在time内调用的次数count -单位毫秒 默认1s
    long frameTime() default 1000;

    //锁定时间 -单位毫秒
    long lockTime() default 1000*60*3;

    //
    RequestFrequencyConditionEnum condition() default RequestFrequencyConditionEnum.BY_IP_ADDRESS;
}
